package com.atguigu.commonutils.utils;

import cn.hutool.crypto.digest.MD5;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;

/**
 * 拓展hutool中的MD5
 *
 * @author alan
 */
public class MD5Utils extends MD5 {

    /**
     * 使用常量中的数据对密码进行加密
     */
    public static String encryptPassWord(String source) {
        MD5 md5 = new MD5(Const.MD5_SALT, Const.MD5_SALT_POSITION, Const.MD5_DIGEST_COUNT);
        return md5.digestHex16(source);
    }

    /**
     * 匹配密码是否正确
     */
    public static boolean match(String dbPassWord, String passWord) {
        if (StringUtils.isEmpty(dbPassWord) || StringUtils.isEmpty(passWord)) {
            return false;
        }
        return encryptPassWord(passWord).equals(dbPassWord);
    }

    /**
     * 匹配密码错误
     */
    public static boolean mismatch(String dbPassWord, String passWord) {
        return !match(dbPassWord, passWord);
    }

}
